def flatten_tuple(nested_data):
    """
    将嵌套的元组结构扁平化：
    1. 对于多个单元素元组组成的元组，提取所有元素组成新元组
    2. 对于单个多元素元组组成的元组，直接返回内部元组
    # 第一种类型：多个单元素元组
    data1 = (('从今天开始做藩王',), ('仙界之蜕变',), ('大虞天行',), ...)
    result1 = flatten_tuple(data1)
    print(result1)
    # 输出：('从今天开始做藩王', '仙界之蜕变', '大虞天行', ...)

    # 第二种类型：单个多元素元组
    data2 = (('18855688009', 'd1034d5ceb91160d81e1dfdda2c4e0d4'),)
    result2 = flatten_tuple(data2)
    print(result2)
    # 输出：('18855688009', 'd1034d5ceb91160d81e1dfdda2c4e0d4')

    # 其他类型保持原样
    data3 = (('a', 'b'), ('c', 'd'))
    result3 = flatten_tuple(data3)
    print(result3)
    # 输出：(('a', 'b'), ('c', 'd'))

    # 空元组返回空元组
    data4 = ()
    result4 = flatten_tuple(data4)
    print(result4)
    # 输出：()
    """
    # 处理空输入
    if not nested_data:
        return ()

    # 检查是否所有元素都是单元素元组
    if all(isinstance(item, tuple) and len(item) == 1 for item in nested_data):
        return tuple(item[0] for item in nested_data)

    # 检查是否只有一个元素且是多元素元组
    if len(nested_data) == 1 and isinstance(nested_data[0], tuple) and len(nested_data[0]) > 1:
        return nested_data[0]

    # 其他情况直接返回原始数据
    return nested_data

if __name__ == '__main__':
    a = (1,2,3,4)
    b = ((1),(2),(3),(4))
    c = ((1,2),(3,4),(5,6))
    d = ((),())
    e = ()
    print(flatten_tuple(a))
    print(flatten_tuple(b))
    print(flatten_tuple(c))
    print(flatten_tuple(d))
    print(flatten_tuple(e))